package rhplus.utilizador;

import java.io.Serializable;
import java.util.LinkedList;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

@PersistenceCapable
public class DoencaGenerica implements Serializable {

    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private String doenca_generica;
    @Persistent
    private String nome;
    @Persistent
    private String descricao;
    @Persistent
    private String sintomas;
    @Persistent
    private String tratamento;

    /** Creates a new instance of DoencaGenerica */
    public DoencaGenerica(final String nome, final String descricao, final String sintomas, final String tratamento) {

        this.nome = nome;
        this.descricao = descricao;
        this.sintomas = sintomas;
        this.tratamento = tratamento;
    }

    public String getDoencaGenerica() {
        return doenca_generica;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(final String nome) {
        this.nome = nome;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(final String descricao) {
        this.descricao = descricao;
    }

    public String getSintomas() {
        return sintomas;
    }

    public void setSintomas(final String sintomas) {
        this.sintomas = sintomas;
    }

    public String getTratamento() {
        return tratamento;
    }

    public void setTratamento(final String tratamento) {
        this.tratamento = tratamento;
    }

    public static LinkedList<String> lista_dg(){

        LinkedList<String> nomes = new LinkedList<String>();

        nomes.add("Gripe");
        nomes.add("Gripe A");
        nomes.add("Constipação");
        nomes.add("Febre");
        nomes.add("Laringite");
        nomes.add("Faringite");
        nomes.add("Sinusite");
        nomes.add("Quebra de tensão");
        nomes.add("Desmaio");
        nomes.add("Diabetes");
        nomes.add("Congestionamento Nasal");
        nomes.add("Otite");

        return nomes;
    }

    /*public static DoencaGenerica devolve(final Long id_doenca_generica) throws SQLException, ClassNotFoundException, InstantiationException,
            IllegalAccessException {

        PersistenceManager pm = PMF.get().getPersistenceManager();

        String query = "select from " + DoencaGenerica.class.getName()
                + " where id_doenca_generica == " + id_doenca_generica;

        DoencaGenerica doencagenerica = (DoencaGenerica) pm.newQuery(query).execute();

        return doencagenerica;
    }

    public static List<DoencaGenerica> devolveTodas() throws SQLException, ClassNotFoundException, InstantiationException,
            IllegalAccessException {

        PersistenceManager pm = PMF.get().getPersistenceManager();

        String query = "select * from " + DoencaGenerica.class.getName();

        List<DoencaGenerica> lista_de_doencas = (List<DoencaGenerica>) pm.newQuery(query).execute();

        return lista_de_doencas;
    }

    public static void insere(final DoencaGenerica dados_da_doenca_generica) throws SQLException, ClassNotFoundException,
            InstantiationException, IllegalAccessException {

        PersistenceManager pm = PMF.get().getPersistenceManager();

        try {
            pm.makePersistent(dados_da_doenca_generica);
        } finally {
            pm.close();
        }

    }

    public static void altera(DoencaGenerica dados_da_doenca_generica) throws SQLException, ClassNotFoundException,
            InstantiationException, IllegalAccessException {

        PersistenceManager pm = PMF.get().getPersistenceManager();

        //Long id_doenca_generica = dados_da_doenca_generica.getIdDoencaGenerica();
        String nome = dados_da_doenca_generica.getNome();
        String descricao = dados_da_doenca_generica.getDescricao();
        String sintomas = dados_da_doenca_generica.getSintomas();
        String tratamento = dados_da_doenca_generica.getTratamento();

        try {
            pm.currentTransaction().begin();

            dados_da_doenca_generica = pm.getObjectById(DoencaGenerica.class, dados_da_doenca_generica.getIdDoencaGenerica());

            dados_da_doenca_generica.setNome(nome);
            dados_da_doenca_generica.setDescricao(descricao);
            dados_da_doenca_generica.setSintomas(sintomas);
            dados_da_doenca_generica.setTratamento(tratamento);

            pm.makePersistent(dados_da_doenca_generica);
            pm.currentTransaction().commit();
        } catch (Exception ex) {
            pm.currentTransaction().rollback();
            throw new RuntimeException(ex);
        } finally {
            pm.close();
        }
    }

    public static void remove(final Long id_doenca_generica) throws SQLException, ClassNotFoundException, InstantiationException,
            IllegalAccessException {

        PersistenceManager pm = PMF.get().getPersistenceManager();
        try {
            pm.currentTransaction().begin();

            DoencaGenerica doenca = pm.getObjectById(DoencaGenerica.class, id_doenca_generica);
            pm.deletePersistent(doenca);

            pm.currentTransaction().commit();
        } catch (Exception ex) {
            pm.currentTransaction().rollback();
            throw new RuntimeException(ex);
        } finally {
            pm.close();
        }
    }
     * 
     */




    @Override
    public String toString() {
        return doenca_generica + ";" + nome + ";" + descricao + ";" + sintomas + ";" + tratamento + ";";
    }
}
